/**
 * 用户路由
 * 定义用户相关的API端点
 */

import express from 'express';
import * as userController from '../controllers/userController.js';
import { authenticate, requireRole } from '../middlewares/auth.js';

const router = express.Router();

/**
 * 公开路由（无需认证）
 */

// POST /api/v1/users/register - 用户注册
router.post('/register', userController.register);

// POST /api/v1/users/login - 用户登录
router.post('/login', userController.login);

/**
 * 受保护路由（需要认证）
 */

// GET /api/v1/users/username/:username - 根据用户名获取用户信息
router.get('/username/:username', authenticate, userController.getUserByUsername);

// GET /api/v1/users/:userId - 根据ID获取用户信息
router.get('/:userId', authenticate, userController.getUserById);

// PUT /api/v1/users/:userId - 更新用户资料
router.put('/:userId', authenticate, userController.updateProfile);

// DELETE /api/v1/users/:userId - 删除用户（需要管理员权限）
router.delete('/:userId', authenticate, requireRole(['admin']), userController.deleteUser);

export default router;

